home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / pcboard / tabppe66.zip / TABS.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-04-11  |  30KB  |  1,254 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER003
  20.     Integer  INTEGER004
  21.     Integer  INTEGER005
  22.     Integer  INTEGER006
  23.     Integer  INTEGER007
  24.     Integer  INTEGER008
  25.     Integer  INTEGER009
  26.     Integer  INTEGER010
  27.     Integer  INTEGER011
  28.     Integer  INTEGER012
  29.     Integer  INTEGER013
  30.     Integer  INTEGER014
  31.     Integer  INTEGER015
  32.     String   STRING003
  33.     String   STRING004
  34.     String   STRING005
  35.     String   STRING006
  36.     String   STRING007
  37.     String   STRING008
  38.     String   STRING009
  39.     String   STRING010
  40.     String   STRING011
  41.     String   STRING012
  42.     String   STRING013
  43.     String   STRING014
  44.     String   STRING015
  45.     String   STRING016
  46.     String   STRING017
  47.     String   STRING018
  48.     String   STRING019
  49.     String   STRING020
  50.     String   STRING021
  51.     String   STRING022
  52.     String   STRING023
  53.     String   STRING024
  54.     String   TSTRING025(3)
  55.     String   STRING026
  56.     String   STRING027
  57.     String   STRING028
  58.     String   STRING029
  59.     String   STRING030
  60.     String   STRING031
  61.     String   STRING032
  62.     String   STRING033
  63.     String   STRING034
  64.     String   STRING035
  65.     String   STRING036
  66.     String   STRING037
  67.     String   STRING038
  68.     String   STRING039
  69.     String   STRING040
  70.     String   STRING041
  71.     String   STRING042
  72.     String   STRING043
  73.     String   STRING044
  74.     String   STRING045
  75.     String   STRING046
  76.     String   STRING047
  77.     String   STRING048
  78.     String   STRING049
  79.     String   STRING050
  80.     String   STRING051
  81.     String   STRING052
  82.     String   STRING053
  83.     String   STRING054
  84.     String   STRING055
  85.     String   STRING056
  86.     String   STRING057
  87.     String   STRING058
  88.     String   STRING059
  89.     String   STRING060
  90.     String   STRING061
  91.     String   TSTRING062(18)
  92.     String   STRING063
  93.     String   STRING064
  94.     String   STRING065
  95.     String   STRING066
  96.     String   STRING067
  97.     String   STRING068
  98.     String   STRING069
  99.     String   STRING070
  100.     String   STRING071
  101.     String   STRING072
  102.     String   STRING073
  103.     String   STRING074
  104.     String   STRING075
  105.     String   STRING076
  106.     String   TSTRING077(10)
  107.     String   STRING078
  108.     String   TSTRING079(5)
  109.     String   STRING080
  110.     String   STRING081
  111.     String   STRING082
  112.     String   STRING083
  113.     String   STRING084
  114.     String   STRING085
  115.     (null)   001
  116.     (null)   002
  117.  
  118. ;------------------------------------------------------------------------------
  119.  
  120.     STRING019 = PPEPath()
  121.     TSTRING025(0) = "@X0F/"
  122.     TSTRING025(1) = "@X0E-"
  123.     TSTRING025(2) = "@X0B\"
  124.     TSTRING025(3) = "@X09│"
  125.     STRING069 = Chr(13)
  126.     STRING020 = " 0123456789.,:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
  127.     STRING033 = ""
  128.     INTEGER003 = ""
  129.     STRING037 = "6.6"
  130.     STRING045 = "1-900-622-8227"
  131.     STRING046 = "1-900-622-5225"
  132.     STRING048 = STRING019 + "TABS" + String(PcbNode()) + ".LOG"
  133.     STRING058 = STRING019 + "SYSOP" + String(PcbNode()) + ".TXT"
  134.     STRING059 = STRING019 + "RECPT" + String(PcbNode()) + ".TXT"
  135.     If (Exist(STRING059)) Delete STRING059
  136.     STRING060 = STRING019 + "WARN" + String(PcbNode()) + ".TXT"
  137.     STRING061 = STRING019 + "FAILED" + String(PcbNode()) + ".TXT"
  138.     STRING051 = ""
  139.     STRING052 = ""
  140.     INTEGER005 = ""
  141.     STRING053 = ""
  142.     TSTRING077(1) = ""
  143.     TSTRING077(2) = ""
  144.     TSTRING077(3) = ""
  145.     TSTRING077(4) = ""
  146.     TSTRING077(5) = ""
  147.     STRING082 = ""
  148.     STRING083 = ""
  149.     STRING081 = ""
  150.     STRING034 = ""
  151.     STRING026 = GetToken()
  152.     While (STRING026 <> "") Do
  153.         STRING034 = Mid(Upper(STRING026), 1, 12)
  154.         STRING026 = GetToken()
  155.     EndWhile
  156.     STRING026 = ""
  157.     GetUser
  158.     FAppend 2, STRING048, 1, 3
  159.     FPutLn 2, "**** ", U_Name(), " Entered PPE on ", String(Date()), " at ", String(Time()), " ****"
  160.     FClose 2
  161.     FOpen 1, STRING019 + STRING034, 0, 3
  162.     FGet 1, STRING052
  163.     FGet 1, STRING051
  164.     If (Len(STRING051) <= 1) STRING053 = "NO"
  165.     FGet 1, STRING036
  166.     STRING036 = Upper(STRING036)
  167.     FGet 1, STRING043
  168.     FGet 1, STRING041
  169.     STRING041 = Upper(STRING041)
  170.     FGet 1, STRING044
  171.     FGet 1, STRING035
  172.     If (Len(STRING035) > 1) STRING038 = "NO"
  173.     FGet 1, STRING072
  174.     If (Len(STRING072) > 1) STRING057 = "YES"
  175.     STRING063 = STRING019 + STRING072
  176.     FClose 1
  177.     For INTEGER006 = 1 To 30
  178.         STRING054 = Mid(STRING052, INTEGER006, 1)
  179.         INTEGER004 = Asc(STRING054)
  180.         INTEGER005 = INTEGER005 + INTEGER004
  181.     Next
  182.     INTEGER005 = INTEGER005 * "804"
  183.     If (STRING051 == INTEGER005) STRING053 = "YES"
  184.     If (STRING053 <> "YES") Goto LABEL003
  185.     FOpen 1, STRING019 + "TCAN", 2, 0
  186.     STRING082 = U_Name()
  187.     SearchInit STRING082, 0
  188.     :LABEL001
  189.     If (Ferr(1)) Goto LABEL002
  190.     FGet 1, STRING081
  191.     SearchFind STRING081, STRING083
  192.     If (STRING083) Then
  193.         Cls
  194.         Newlines 10
  195.         PrintLn "@BEEP@@BEEP@@BEEP@@X0CI'm sorry, the SysOp of this system has locked you out of this program !"
  196.         Newlines 10
  197.         FAppend 2, STRING048, 1, 3
  198.         FPutLn 2, "******* Caller name is listed in TABS trashcan file ! *******"
  199.         FClose 2
  200.         Wait
  201.     Else
  202.         Goto LABEL001
  203.         :LABEL002
  204.         SearchStop
  205.         FClose 1
  206.         :LABEL003
  207.         STRING049 = ""
  208.         If (STRING036 == "NO") Then
  209.             STRING042 = "25"
  210.             STRING027 = STRING044
  211.             STRING047 = STRING046
  212.             STRING049 = "NO"
  213.         Else
  214.             If (STRING041 == "NO") Then
  215.                 STRING042 = "10"
  216.                 STRING027 = STRING043
  217.                 STRING047 = STRING045
  218.                 STRING049 = "NO"
  219.             Else
  220.                 STRING049 = "YES"
  221.                 :LABEL004
  222.                 If (STRING049 == "NO") Goto LABEL011
  223.                 STRING042 = ""
  224.                 Cls
  225.                 If (STRING038 == "NO") Then
  226.                     DispFile STRING019 + STRING035, 1 + 2 + 4
  227.                 Else
  228.                     PrintLn "@X38┌─────────────────────────────────────────────────────────────────────────────@X3B┐@X07"
  229.                     PrintLn "@X38│ @X3FDate: @SYSDATE@           @X3E« TABS PCBoard Version ", STRING037, " »           @X3FTime: @SYSTIME@ @X3B│@X07"
  230.                     PrintLn "@X38└@X3B─────────────────────────────────────────────────────────────────────────────┘@X07"
  231.                     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X07"
  232.                     PrintLn "@X10│                                                                             @X19│@X07"
  233.                     PrintLn "@X10│                 @X1FTelephone Access Billing Processor @X1B(TABS-PPE)              @X19 │@X07"
  234.                     PrintLn "@X10│         @X1E@X1CWritten By Ray Sulich @X1E(Straight Board BBS 804-468-6454/6525)       @X19 │@X07"
  235.                     PrintLn "@X10│                          @X1BRIME ->1475 FIDO 1:275/25    @X19                      │@X07"
  236.                     PrintLn "@X10│                                                                            @X19 │@X07"
  237.                     PrintLn "@X10│  @X1ETelephone Access Billing System (TABS) allows you to charge a subscription @X19│@X07"
  238.                     PrintLn "@X10│  @X1E              to this BBS by calling a (900) telephone number.             @X19│@X07"
  239.                     PrintLn "@X10│                                                                             @X19│@X07"
  240.                     PrintLn "@X10│  @X1EThis Bulletin Board Service offers both a $10 and a $25 subscription rate. @X19│@X07"
  241.                     PrintLn "@X10│                                                                             @X19│@X07"
  242.                     PrintLn "@X10│                  @X1B(@X1E1@X1B)@X1F Obtain information about $10 Service                   @X19│@X07"
  243.                     PrintLn "@X10│                  @X1B(@X1E2@X1B)@X1F Obtain information about $25 Service                   @X19│@X07"
  244.                     PrintLn "@X10│                  @X1B(@X1E3@X1B)@X1F Redeem $10 Subscription ID                             @X19│@X07"
  245.                     PrintLn "@X10│                  @X1B(@X1E4@X1B)@X1F Redeem $25 Subscription ID                             @X19│@X07"
  246.                     If (Upper(STRING057) == "YES") Then
  247.                         PrintLn "@X10│                  @X1B(@X1ED@X1B) @X1Fownload TABS information                               @X19│@X07"
  248.                         PrintLn "@X10│                                                                             @X19│@X07"
  249.                         PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────┘@X07"
  250.                     Else
  251.                         PrintLn "@X10│                                                                             @X19│@X07"
  252.                         PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────┘@X07"
  253.                     Endif
  254.                 Endif
  255.                 STRING018 = ""
  256.                 STRING014 = ""
  257.                 If (Upper(STRING057) == "YES") Then
  258.                     InputStr "@X0B(@X0E1@X0B)@X0F, @X0B(@X0E2@X0B)@X0F, @X0B(@X0E3@X0B)@X0F, @X0B(@X0E4@X0B)@X0F, @X0B(@X0ED@X0B)@X0F, @X0B(@X0EQ@X0B)@X0Fuit", STRING018, 14, 1, "Qq1234Dd", 32 + 2 + 4 + 128 + 8
  259.                 Else
  260.                     InputStr "@X0B(@X0E1@X0B)@X0F, @X0B(@X0E2@X0B)@X0F, @X0B(@X0E3@X0B)@X0F, @X0B(@X0E4@X0B)@X0F, @X0B(@X0EQ@X0B)@X0Fuit", STRING018, 14, 1, "Qq1234", 32 + 2 + 4 + 128 + 8
  261.                 Endif
  262.                 If (STRING018 == "Q") Goto LABEL063
  263.                 If (STRING018 == "1") Goto LABEL006
  264.                 If (STRING018 == "2") Goto LABEL007
  265.                 If (STRING018 == "3") Then
  266.                     STRING014 = "YES"
  267.                 Else
  268.                     If (STRING018 == "4") Then
  269.                         STRING014 = "YES"
  270.                         Goto LABEL007
  271.                     Endif
  272.                     If (STRING018 == "D") Then
  273.                         If (Exist(STRING063)) Then
  274.                             Download STRING063
  275.                             Goto LABEL005
  276.                         Endif
  277.                         Cls
  278.                         Newlines 2
  279.                         PrintLn "@X0FERROR: @X0C", STRING063, "@X0F could not be found... Please inform your Sysop !"
  280.                         Newlines 2
  281.                         Wait
  282.                     Endif
  283.                     :LABEL005
  284.                     Goto LABEL004
  285.                 Endif
  286.             Endif
  287.             :LABEL006
  288.             STRING042 = "10"
  289.             STRING027 = STRING043
  290.             Goto LABEL008
  291.         Endif
  292.         :LABEL007
  293.         STRING042 = "25"
  294.         STRING027 = STRING044
  295.         :LABEL008
  296.         If (Len(STRING027) < 1) STRING027 = "TABS.CFG"
  297.         FOpen 1, STRING019 + STRING027, 0, 3
  298.         FGet 1, STRING004
  299.         FGet 1, STRING050
  300.         STRING050 = Upper(STRING050)
  301.         FGet 1, STRING056
  302.         If (Len(STRING056) > 1) STRING055 = "YES"
  303.         FGet 1, STRING072
  304.         If (Len(STRING072) > 1) STRING057 = "YES"
  305.         STRING063 = STRING019 + STRING072
  306.         FGet 1, STRING075
  307.         If (Len(STRING075) > 1) STRING074 = "YES"
  308.         FGet 1, STRING065
  309.         If (Len(STRING065) > 1) STRING064 = "YES"
  310.         FGet 1, STRING066
  311.         FGet 1, STRING068
  312.         FGet 1, STRING067
  313.         FGet 1, STRING078
  314.         Tokenize STRING078
  315.         If (TokCount() == 10) GetToken TSTRING077(10)
  316.         If (TokCount() == 9) GetToken TSTRING077(9)
  317.         If (TokCount() == 8) GetToken TSTRING077(8)
  318.         If (TokCount() == 7) GetToken TSTRING077(7)
  319.         If (TokCount() == 6) GetToken TSTRING077(6)
  320.         If (TokCount() == 5) GetToken TSTRING077(5)
  321.         If (TokCount() == 4) GetToken TSTRING077(4)
  322.         If (TokCount() == 3) GetToken TSTRING077(3)
  323.         If (TokCount() == 2) GetToken TSTRING077(2)
  324.         If (TokCount() == 1) GetToken TSTRING077(1)
  325.         FGet 1, STRING005
  326.         FGet 1, INTEGER008
  327.         FGet 1, STRING009
  328.         FGet 1, INTEGER009
  329.         If (INTEGER009 <> 99999) Then
  330.             If (Psa(7) == 0) Then
  331.                 Cls
  332.                 Newlines 5
  333.                 PrintLn "@X0C ERROR.... @X0EAccounting PSA not installed, Please inform your SysOp !!!"
  334.                 Newlines 5
  335.                 Delay 50
  336.                 End
  337.             Endif
  338.             INTEGER011 = INTEGER009 + PCBAccStat(4)
  339.         Endif
  340.         FGet 1, STRING076
  341.         FGet 1, STRING073
  342.         STRING073 = Upper(STRING073)
  343.         FGet 1, STRING010
  344.         FGet 1, STRING011
  345.         FGet 1, INTEGER015
  346.         FGet 1, INTEGER007
  347.         If (INTEGER007 <> 99999) Then
  348.             If (Psa(7) == 0) Then
  349.                 Cls
  350.                 Newlines 5
  351.                 PrintLn "@X0C ERROR.... @X0EAccounting PSA not installed, Please inform your SysOp !!!"
  352.                 Newlines 5
  353.                 Delay 50
  354.                 End
  355.             Endif
  356.         Endif
  357.         FGet 1, INTEGER010
  358.         FGet 1, STRING012
  359.         STRING012 = Upper(STRING012)
  360.         FGet 1, STRING015
  361.         If (Len(STRING015) < 1) STRING015 = "NONE"
  362.         Tokenize STRING015
  363.         STRING080 = TokCount()
  364.         If (TokCount() == 5) GetToken TSTRING079(5)
  365.         If (TokCount() == 4) GetToken TSTRING079(4)
  366.         If (TokCount() == 3) GetToken TSTRING079(3)
  367.         If (TokCount() == 2) GetToken TSTRING079(2)
  368.         If (TokCount() == 1) GetToken TSTRING079(1)
  369.         FGet 1, STRING031
  370.         FGet 1, STRING032
  371.         FGet 1, STRING016
  372.         If (Len(STRING016) < 1) STRING016 = "NONE"
  373.         FGet 1, STRING003
  374.         FGet 1, STRING017
  375.         STRING017 = Upper(STRING017)
  376.         FGet 1, STRING040
  377.         FGet 1, STRING028
  378.         STRING028 = Upper(STRING028)
  379.         If (STRING028 == "YES") Then
  380.             STRING030 = "FALSE"
  381.             Goto LABEL009
  382.         Else
  383.             STRING030 = "TRUE"
  384.         Endif
  385.         Goto LABEL010
  386.         :LABEL009
  387.         FGet 1, STRING029
  388.         FGet 1, STRING070
  389.         FGet 1, STRING071
  390.         :LABEL010
  391.         FClose 1
  392.         If (STRING014 == "YES") Goto LABEL016
  393.         :LABEL011
  394.         STRING018 = "Y"
  395.         Cls
  396.         DispFile STRING019 + STRING040, 1 + 2 + 4
  397.         InputStr "@X0B(@X0EY@X0B) @X0FContinue, @X0B(@X0EN@X0B) @X0FReturn to BBS @X0B(@X0E1@X0B) @X0FRedeem $" + STRING042 + " Sid", STRING018, 14, 1, "YyNn1", 32 + 2 + 4 + 128 + 8
  398.         If (STRING018 == YesChar()) Goto LABEL012
  399.         If (STRING018 == NoChar()) Goto LABEL063
  400.         Select Case (STRING018)
  401.             Case "1"
  402.                 STRING014 = "YES"
  403.             Case "2"
  404.                 STRING014 = "YES"
  405.             Case Else
  406.                 Goto LABEL011
  407.                 :LABEL012
  408.                 If (CurSec() == TSTRING077(1)) Goto LABEL013
  409.                 If (CurSec() == TSTRING077(2)) Goto LABEL013
  410.                 If (CurSec() == TSTRING077(3)) Goto LABEL013
  411.                 If (CurSec() == TSTRING077(4)) Goto LABEL013
  412.                 If (CurSec() == TSTRING077(5)) Goto LABEL013
  413.                 Goto LABEL014
  414.                 :LABEL013
  415.                 Cls
  416.                 STRING021 = ""
  417.                 STRING022 = ""
  418.                 If (STRING030 == "FALSE") Then
  419.                     Cls
  420.                     DispFile STRING019 + STRING029, 1 + 2 + 4
  421.                 Else
  422.                     PrintLn "@X38┌─────────────────────────────────────────────────────────────────────────────@X3B┐@X07"
  423.                     PrintLn "@X38│ @X3FDate: @SYSDATE@         @X3E« Contribution Entitlements »            @X3FTime: @SYSTIME@ @X3B│@X07"
  424.                     PrintLn "@X38└@X3B─────────────────────────────────────────────────────────────────────────────┘@X07"
  425.                     Newlines 2
  426.                     PrintLn "@X07             @X0FAn initial $", STRING042, " Contribution would entitle you to:@X07"
  427.                     PrintLn "@X07"
  428.                     PrintLn "@X07               @X0FAccess Level @X0E", STRING005, "@X07"
  429.                     PrintLn "@X07               @X0E", STRING010, " @X0FMinutes per day or Session@X07"
  430.                     PrintLn "@X07               @X0E", STRING011, " @X0F Download Bytes per day@X07"
  431.                     If (STRING073 == "NO") PrintLn "               @X0F@X0FAdd @X0E", INTEGER008, " @X0F Days to your subscription expiration date@X07"
  432.                     If (INTEGER009 <> 99999) Then
  433.                         PrintLn "@X07               @X0FAdd @X0E", INTEGER009, "@X0F additional Account Credits@X07"
  434.                         PrintLn "@X07               @X0FYour credit account balance would be: @X0E", INTEGER011, "@X07"
  435.                     Endif
  436.                     PrintLn "@X07"
  437.                 Endif
  438.                 STRING018 = "C"
  439.                 InputStr "@X0B(@X0EC@X0B)@X0Fontinue, @X0B(@X0ER@X0B)@X0Feturn to Intro. @X0B(@X0EQ@X0B)@X0Fuit", STRING018, 14, 1, "QqRrCc", 32 + 2 + 4 + 128 + 8
  440.                 If (STRING018 == "Q") Goto LABEL063
  441.                 If (STRING018 == "R") Goto LABEL004
  442.                 If (STRING018 == "C") Goto LABEL016
  443.                 Goto LABEL012
  444.                 :LABEL014
  445.                 If (STRING030 == "FALSE") Then
  446.                     Cls
  447.                     DispFile STRING019 + STRING070, 1 + 2 + 4
  448.                 Else
  449.                     If ((INTEGER007 == 99999) && (INTEGER015 == 0)) Then
  450.                         Cls
  451.                         PrintLn "@X38┌─────────────────────────────────────────────────────────────────────────────@X3B┐@X07"
  452.                         PrintLn "@X38│ @X3FDate: @SYSDATE@          @X3E« Contribution Entitlements »           @X3FTime: @SYSTIME@ @X3B│@X07"
  453.                         PrintLn "@X38└@X3B─────────────────────────────────────────────────────────────────────────────┘@X07"
  454.                         Newlines 2
  455.                         PrintLn "                @X0FA Contribution would not yield more entitlements@X07"
  456.                         PrintLn ""
  457.                         PrintLn "         @X0FDue to your current security level, we do not offer any other         @X07"
  458.                         PrintLn "         @X0Fentitlements utilizing the TABS program.  If you want a higher        @X07"
  459.                         PrintLn "         @X0Faccess level, please contact the @X0ESysOp @X0Fof this BBS for more           @X07"
  460.                         PrintLn "         @X0Finformation.@X07"
  461.                         PrintLn ""
  462.                         Goto LABEL015
  463.                     Else
  464.                         Cls
  465.                         PrintLn "@X38┌─────────────────────────────────────────────────────────────────────────────@X3B┐@X07"
  466.                         PrintLn "@X38│ @X3FDate: @SYSDATE@          @X3E« Contribution Entitlements »           @X3FTime: @SYSTIME@ @X3B│@X07"
  467.                         PrintLn "@X38└@X3B─────────────────────────────────────────────────────────────────────────────┘@X07"
  468.                         Newlines 2
  469.                         PrintLn "                              @X0FA Contribution would@X07"
  470.                         PrintLn ""
  471.                         If (INTEGER015 <> 0) PrintLn "         @X0FAdd @X0E", INTEGER015, " @X0Fday(s) to your account expiration date."
  472.                         If (INTEGER007 <> 99999) Then
  473.                             PrintLn "         @X0FAdd @X0E", INTEGER007, " @X0Fcredits to your current credit balance of @X0E", PCBAccStat(4), "@X07"
  474.                             PrintLn "         @X0Fto allow a credit account balance of @X0E", PCBAccStat(4) + INTEGER007, " @X0Fcredits.@X07"
  475.                         Endif
  476.                     Endif
  477.                     Newlines 5
  478.                     Goto LABEL015
  479.                 Endif
  480.                 :LABEL015
  481.                 STRING018 = "C"
  482.                 InputStr "@X0B(@X0ER@X0B)@X0Feturn to Intro., @X0B(@X0EC@X0B)@X0Fontinue, @X0B(@X0EQ@X0B)@X0Fuit", STRING018, 14, 1, "QqRrCc", 32 + 2 + 4 + 128 + 8
  483.                 If (STRING018 == "Q") Goto LABEL063
  484.                 If (STRING018 == "R") Goto LABEL004
  485.                 If (STRING018 == "C") Goto LABEL016
  486.                 Goto LABEL014
  487.         End Select
  488.         :LABEL016
  489.         Cls
  490.         If (STRING030 == "FALSE") Then
  491.             DispFile STRING019 + STRING071, 1 + 2 + 4
  492.         Else
  493.             PrintLn "@X38┌─────────────────────────────────────────────────────────────────────────────@X3B┐@X07"
  494.             PrintLn "@X38│ @X3FDate: @SYSDATE@        @X3E« Telephone Access Billing Menu »         @X3FTime: @SYSTIME@ @X3B│@X07"
  495.             PrintLn "@X38└@X3B─────────────────────────────────────────────────────────────────────────────┘@X07"
  496.             PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X07"
  497.             PrintLn "@X10│                                                                             @X19│@X07"
  498.             PrintLn "@X10│                   @X1FPlease select one of the options below:                   @X19│@X07"
  499.             PrintLn "@X10│                                                                             @X19│@X07"
  500.             If (U_Name() == Upper(STRING004)) Then
  501.                 PrintLn "@X10│             @X1B(@X1EI@X1B)@X1F nquire about the # of SIDS in the $", STRING042, " SID List              @X19│@X07"
  502.                 PrintLn "@X10│             @X1B(@X1EA@X1B)@X1F dd New SID's to the $", STRING042, " SID List                            @X19│@X07"
  503.                 PrintLn "@X10│             @X1B(@X1EE@X1B)@X1F nter your Subscription ID #                                 @X19│@X07"
  504.                 PrintLn "@X10│             @X1B(@X1EQ@X1B)@X1F uit Return to the BBS                                       @X19│@X07"
  505.                 If (Upper(STRING057) == "YES") Then
  506.                     PrintLn "@X10│             @X1B(@X1ED@X1B)@X1F ownload TABS information                                    @X19│@X07"
  507.                     Goto LABEL017
  508.                 Endif
  509.                 :LABEL017
  510.                 PrintLn "@X10│             @X1B(@X1ER@X1B)@X1F eturn to Introduction Screen                               @X19 │@X07"
  511.                 PrintLn "@X10│                                                                             @X19│@X07"
  512.                 PrintLn "@X10│      @X1CNOTE:  @X1EIf this is not the SID file you wish to process.  Return to     @X19│@X07"
  513.                 PrintLn "@X10│             @X1Ethe Introduction screen and select the correct service to       @X19│@X07"
  514.                 PrintLn "@X10│            @X1E process.                                                        @X19│@X07"
  515.                 PrintLn "@X10│                                                                             @X19│@X07"
  516.                 PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────┘@X07"
  517.             Endif
  518.             STRING018 = ""
  519.             If (U_Name() <> Upper(STRING004)) Goto LABEL022
  520.             If (Upper(STRING057) == "YES") Then
  521.                 InputStr "@X0B(@X0EQ@X0B)@X0Fuit, @X0B(@X0ER@X0B)@X0Feturn to Intro, @X0B(@X0EE@X0B)@X0Fnter ID #, @X0B(@X0EI@X0B)@X0Fnquire, @X0B(@X0EA@X0B)@X0Fdd, @X0B(@X0ED@X0B)@X0Fownload", STRING018, 14, 1, "QqRrEeIiAadD", 32 + 2 + 4 + 8
  522.                 Goto LABEL018
  523.             Endif
  524.             InputStr "@X0B(@X0EQ@X0B)@X0Fuit, @X0B(@X0ER@X0B)@X0Feturn to Intro, @X0B(@X0EE@X0B)@X0Fnter ID #, @X0B(@X0EI@X0B)@X0Fnquire, @X0B(@X0EA@X0B)@X0Fdd", STRING018, 14, 1, "QqRrEeIiAa", 32 + 2 + 4 + 8
  525.             :LABEL018
  526.             If (STRING018 == "I") Goto LABEL024
  527.             If (STRING018 == "A") Goto LABEL028
  528.             If (STRING018 == "Q") Goto LABEL063
  529.             If (STRING018 == "R") Goto LABEL004
  530.             If (STRING018 == "E") Goto LABEL039
  531.             If (STRING018 == "D") Then
  532.                 If (Exist(STRING063)) Then
  533.                     Download STRING063
  534.                     Goto LABEL019
  535.                 Endif
  536.                 Cls
  537.                 Newlines 2
  538.                 PrintLn "@X0F@X8CERROR !!!@X0F: @X0E", STRING063, "@X0F could not be found... Please inform your Sysop !"
  539.                 Newlines 2
  540.                 Wait
  541.             Endif
  542.             :LABEL019
  543.             Goto LABEL016
  544.             Goto LABEL020
  545.         Endif
  546.         :LABEL020
  547.         PrintLn "@X10│                   @X1B(@X1EE@X1B) @X1Fnter your Subscription ID #                           @X19│@X07"
  548.         PrintLn "@X10│                   @X1B(@X1EQ@X1B) @X1Fuit Return to the BBS                                 @X19│@X07"
  549.         If (Upper(STRING057) == "YES") Then
  550.             PrintLn "@X10│                   @X1B(@X1ED@X1B)@X1F ownload TABS information                              @X19│@X07"
  551.             Goto LABEL021
  552.         Endif
  553.         :LABEL021
  554.         PrintLn "@X10│                   @X1B(@X1ER@X1B) @X1Feturn to Introduction Screen                          @X19│@X07"
  555.         PrintLn "@X10│                                                                             @X19│@X07"
  556.         PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────┘@X07"
  557.         :LABEL022
  558.         STRING018 = ""
  559.         PrintLn ""
  560.         If (Upper(STRING057) == "YES") Then
  561.             InputStr "@X0B(@X0EQ@X0B)@X0Fuit, @X0B(@X0ER@X0B)@X0Feturn to Intro, @X0B(@X0ED@X0B)@X0Fownload, @X0B(@X0EE@X0B)@X0Fnter ID #", STRING018, 14, 1, "QqEeRrDd", 32 + 2 + 4 + 8
  562.         Else
  563.             InputStr "@X0B(@X0EQ@X0B)@X0Fuit, @X0B(@X0ER@X0B)@X0Feturn to Intro, @X0B(@X0EE@X0B)@X0Fnter ID #", STRING018, 14, 1, "QqEeRr", 32 + 2 + 4 + 8
  564.         Endif
  565.         If (STRING018 == "Q") Goto LABEL063
  566.         If (STRING018 == "R") Goto LABEL004
  567.         If (STRING018 == "E") Goto LABEL039
  568.         If (STRING018 == "D") Then
  569.             If (Exist(STRING063)) Then
  570.                 Download STRING063
  571.                 Goto LABEL023
  572.             Endif
  573.             Cls
  574.             Newlines 2
  575.             PrintLn "@X8CERROR !!!@X0F: @X0E", STRING063, "@X0F could not be found... Please inform your Sysop !"
  576.             Newlines 2
  577.             Wait
  578.         Endif
  579.         :LABEL023
  580.         Goto LABEL016
  581.         :LABEL024
  582.         INTEGER003 = ""
  583.         Print "Standby, while I process your request... "
  584.         FOpen 1, STRING019 + STRING003, 0, 3
  585.         If (Ferr(1)) Then
  586.             STRING021 = "14"
  587.             FClose 1
  588.             FClose 2
  589.         Else
  590.             Frewind 1
  591.             INTEGER012 = GetX()
  592.             INTEGER013 = GetY()
  593.             :LABEL025
  594.             If (Ferr(1)) Goto LABEL027
  595.             FGet 1, STRING006
  596.             AnsiPos INTEGER012, INTEGER013
  597.             Print TSTRING025(INTEGER014 % 4)
  598.             Inc INTEGER014
  599.             If (Len(STRING006) < 7) Then
  600.                 Goto LABEL026
  601.             ElseIf (Len(STRING006) > 8) Then
  602.                 Goto LABEL026
  603.             Else
  604.                 Inc INTEGER003
  605.             Endif
  606.             :LABEL026
  607.             Goto LABEL025
  608.             :LABEL027
  609.             FClose 1
  610.             Cls
  611.             Newlines 2
  612.             PrintLn "@X0F There are currently @X0E", INTEGER003, "@X0F SIDS available for usage in the $@X0C", STRING042, " @X0FSID list."
  613.             Newlines 2
  614.             Wait
  615.             Goto LABEL016
  616.             :LABEL028
  617.             Cls
  618.             STRING018 = ""
  619.             Newlines 2
  620.             PrintLn "@X0FYour new @X0BSIDS@X0F must reside in the same directory as the @X0CTABS @X0FPPE."
  621.             PrintLn "@X0EENSURE @X0Fthat you are adding $@X0C", STRING042, " @X0FSIDS to this ID list."
  622.             PrintLn "@X0FThe file that you about to add subscription ID's to is:"
  623.             PrintLn ""
  624.             PrintLn "@X0E     ", STRING019 + STRING003, "  @X0C!!!!"
  625.             PrintLn ""
  626.             InputStr "@X0FIs this the file you wish to add SIDS to? @X0B(@X0EY@X0B)@X0Fes, @X0B(@X0EN@X0B)@X0Fo ", STRING018, 14, 1, "YyNn", 32 + 2 + 4 + 128 + 8
  627.             If (STRING018 == YesChar()) Goto LABEL029
  628.             If (STRING018 == NoChar()) Goto LABEL016
  629.             Goto LABEL028
  630.             :LABEL029
  631.             InputStr "@X0FEnter the filename of the $@X0E" + STRING042 + " @X0FSID file to add ", STRING023, 15, 12, Mask_File(), 8 + 32 + 2 + 4 + 128
  632.             Newlines 2
  633.             Print "@X0FHold on while we add the numbers to your $@X0E", STRING042, " @X0FSID listing "
  634.             Delete STRING019 + "WORK.$$$"
  635.             FCreate 1, STRING019 + "WORK.$$$", 2, 3
  636.             If (Ferr(1)) Then
  637.                 STRING021 = "12"
  638.                 FClose 1
  639.             Else
  640.                 FOpen 2, STRING019 + STRING003, 2, 3
  641.                 If (Ferr(2)) Then
  642.                     STRING021 = "14"
  643.                     FClose 2
  644.                     FClose 1
  645.                 Else
  646.                     INTEGER012 = GetX()
  647.                     INTEGER013 = GetY()
  648.                     :LABEL030
  649.                     If (Ferr(2)) Goto LABEL033
  650.                     FGet 2, STRING024
  651.                     AnsiPos INTEGER012, INTEGER013
  652.                     Print TSTRING025(INTEGER014 % 4)
  653.                     Inc INTEGER014
  654.                     If (Len(STRING024) >= 7) Then
  655.                         Goto LABEL031
  656.                     Else
  657.                         Goto LABEL032
  658.                     Endif
  659.                     :LABEL031
  660.                     FPutLn 1, STRING024
  661.                     :LABEL032
  662.                     Goto LABEL030
  663.                     :LABEL033
  664.                     FOpen 3, STRING019 + STRING023, 0, 3
  665.                     If (Ferr(3)) Then
  666.                         STRING021 = "13"
  667.                         FClose 1
  668.                         FClose 2
  669.                         FClose 3
  670.                     Else
  671.                         :LABEL034
  672.                         If (Ferr(3)) Goto LABEL038
  673.                         FGet 3, STRING024
  674.                         AnsiPos INTEGER012, INTEGER013
  675.                         Print TSTRING025(INTEGER014 % 4)
  676.                         Inc INTEGER014
  677.                         If (Len(STRING024) > 6) Then
  678.                             Goto LABEL035
  679.                         Else
  680.                             Goto LABEL037
  681.                         Endif
  682.                         :LABEL035
  683.                         If (Len(STRING024) < 8) Then
  684.                             Goto LABEL036
  685.                         Else
  686.                             Goto LABEL037
  687.                         Endif
  688.                         :LABEL036
  689.                         FPutLn 1, STRING024
  690.                         :LABEL037
  691.                         Goto LABEL034
  692.                         :LABEL038
  693.                         FClose 1
  694.                         FClose 2
  695.                         FClose 3
  696.                         Delete STRING019 + STRING003
  697.                         Rename STRING019 + "WORK.$$$", STRING019 + STRING003
  698.                         Cls
  699.                         Newlines 2
  700.                         PrintLn " Operation successfull !!!! "
  701.                         Newlines 2
  702.                         PrintLn " Please check that your ", 11, " @X0Fis intact.  After you have done this"
  703.                         PrintLn " You may delete @X0E", STRING019 + STRING003, "@X0F @X0CTABS-PPE @X0Fdoes not delete this file."
  704.                         PrintLn " We recommend that you save it in case you lose your working copy of it in the"
  705.                         PrintLn " future."
  706.                         Newlines 4
  707.                         Wait
  708.                         Goto LABEL024
  709.                         :LABEL039
  710.                         STRING022 = ""
  711.                         STRING021 = ""
  712.                         PrintLn ""
  713.                         InputStr "@X0B(@X0EQ@X0B)@X0Fuit, @X0FEnter your Subscription @X0E#@X0F", STRING022, 15, 7, "Qq0123456789", 32 + 2 + 4 + 8
  714.                         If (STRING022 == "Q") Goto LABEL016
  715.                         If (Len(STRING022) < 7) Goto LABEL055
  716.                         If (Len(STRING022) > 8) Goto LABEL055
  717.                         PrintLn ""
  718.                         Print "@X0F Please standby while I validate your Subscription Number... "
  719.                         FAppend 2, STRING048, 1, 3
  720.                         FPutLn 2, " Entered SID# ", STRING022, " looking in $", STRING042, " list for a match."
  721.                         FClose 2
  722.                         FOpen 1, STRING019 + STRING003, 0, 3
  723.                         If (Ferr(1)) Then
  724.                             STRING021 = "14"
  725.                             FClose 1
  726.                         Else
  727.                             FCreate 2, STRING019 + "WORK.$$$", 1, 3
  728.                             If (Ferr(2)) Then
  729.                                 STRING021 = "12"
  730.                                 FClose 1
  731.                                 FClose 2
  732.                             Else
  733.                                 Frewind 1
  734.                                 STRING021 = "11"
  735.                                 INTEGER012 = GetX()
  736.                                 INTEGER013 = GetY()
  737.                                 :LABEL040
  738.                                 If (Ferr(1)) Goto LABEL042
  739.                                 FGet 1, STRING006
  740.                                 AnsiPos INTEGER012, INTEGER013
  741.                                 Print TSTRING025(INTEGER014 % 4)
  742.                                 Inc INTEGER014
  743.                                 If (STRING022 == STRING006) Then
  744.                                     FPutLn 2, " *** SID ", STRING022, " was used ", String(Date()), " at ", String(Time()), " by ", U_Name(), " ***"
  745.                                     STRING021 = "10"
  746.                                 ElseIf (Len(STRING006) >= 7) Then
  747.                                     FPutLn 2, STRING006
  748.                                     If (Len(STRING006) == 7) Inc INTEGER003
  749.                                     Goto LABEL041
  750.                                 Endif
  751.                                 :LABEL041
  752.                                 Goto LABEL040
  753.                                 :LABEL042
  754.                                 FClose 1
  755.                                 FClose 2
  756.                                 FClose 3
  757.                                 Delete STRING019 + STRING003
  758.                                 Rename STRING019 + "WORK.$$$", STRING019 + STRING003
  759.                             Endif
  760.                         Endif
  761.                     Endif
  762.                 Endif
  763.             Endif
  764.         Endif
  765.         If (STRING021 == "14") Goto LABEL056
  766.         If (STRING021 == "13") Goto LABEL056
  767.         If (STRING021 == "12") Goto LABEL057
  768.         If (STRING021 == "11") Goto LABEL055
  769.         If (STRING021 == "10") Goto LABEL043
  770.         Goto LABEL057
  771.         :LABEL043
  772.         If (CurSec() == TSTRING077(1)) Goto LABEL044
  773.         If (CurSec() == TSTRING077(2)) Goto LABEL044
  774.         If (CurSec() == TSTRING077(3)) Goto LABEL044
  775.         If (CurSec() == TSTRING077(4)) Goto LABEL044
  776.         If (CurSec() == TSTRING077(5)) Goto LABEL044
  777.         Goto LABEL045
  778.         :LABEL044
  779.         If (STRING050 == "YES") U_ExpDate = Date()
  780.         If (U_ExpDate < Date()) U_ExpDate = Date()
  781.         U_Sec = STRING005
  782.         U_ExpDate = U_ExpDate + INTEGER008
  783.         U_ExpSec = STRING009
  784.         STRING039 = PCBAccStat(4)
  785.         If (INTEGER009 <> 99999) Account 16, INTEGER009
  786.         If (STRING076 <> 99999) Account 17, STRING076
  787.         If (STRING073 == "YES") U_ExpDate = 0 - 0 - 0
  788.         PutUser
  789.         Goto LABEL046
  790.         :LABEL045
  791.         If (INTEGER015 <> 0) U_ExpDate = U_ExpDate + INTEGER015
  792.         If (STRING012 == "YES") U_ExpDate = 0 - 0 - 0
  793.         STRING039 = PCBAccStat(4)
  794.         If (INTEGER007 <> 99999) Account 16, INTEGER007
  795.         If (INTEGER010 <> 99999) Account 17, INTEGER010
  796.         PutUser
  797.         :LABEL046
  798.         If (STRING017 == "NO") Then
  799.             Goto LABEL047
  800.         ElseIf (Psa(6) == 1) Then
  801.             U_Notes(0) = "Contribution Via TABS, SID # " + STRING022 + " "
  802.             U_Notes(1) = "ON: " + String(Date()) + " $" + STRING042 + " contribution."
  803.             PutUser
  804.         Endif
  805.         :LABEL047
  806.         FAppend 2, STRING048, 1, 3
  807.         FPutLn 2, "       SID was accepted:"
  808.         FPutLn 2, "               Access level: ", CurSec()
  809.         FPutLn 2, "               Daily/Session Access Time : ", STRING010, " mins."
  810.         FPutLn 2, "               Expiration Date           : ", U_ExpDate
  811.         If (Psa(7) == 0) Goto LABEL048
  812.         FPutLn 2, "               Account Credits           : ", PCBAccStat(4)
  813.         FPutLn 2, "               Previous Account Credits  : ", STRING039
  814.         FPutLn 2, "               At 0 Credit Security Level: ", Account(17)
  815.         FClose 2
  816.         :LABEL048
  817.         If (STRING015 == "NONE") Goto LABEL049
  818.         ConfFlag STRING015, 1 + 2 + 4
  819.         PutUser
  820.         :LABEL049
  821.         If (STRING016 == "NONE") Goto LABEL050
  822.         FCreate 1, STRING058, 1, 3
  823.         FPutLn 1, "@XON@"
  824.         FPutLn 1, "@X0FThis is just a message to let you know that:"
  825.         FPutLn 1, ""
  826.         FPutLn 1, "@X0E", U_Name(), "@X0F , donated $", STRING042, " to the BBS their account status is now:"
  827.         FPutLn 1, ""
  828.         FPutLn 1, "               Access level              : ", CurSec()
  829.         FPutLn 1, "               Daily/Session Access Time : ", STRING010, " mins."
  830.         FPutLn 1, "               Expiration Date           : ", U_ExpDate
  831.         If (Psa(7) <> 0) Then
  832.             FPutLn 1, "               Account Credits           : ", PCBAccStat(4)
  833.             FPutLn 1, "               Previous Account Credits  : ", STRING039
  834.             FPutLn 1, "               0 Credit Security Level   : ", Account(17)
  835.             FClose 1
  836.         Endif
  837.         FClose 1
  838.         Message STRING016, STRING004, "TABS-PPE", "Contribution", "R", 0, 0, 0, STRING058
  839.         Delete STRING058
  840.         :LABEL050
  841.         Cls
  842.         PrintLn ""
  843.         PrintLn "@X0EThank you @X0B", "", "@X0F, for your Contribution. Your account on this BBS has"
  844.         PrintLn "@X0Fbeen adjusted to reflect your generosity."
  845.         PrintLn ""
  846.         PrintLn "@X0FYour access level is            :@X0E ", CurSec(), "@X0F"
  847.         PrintLn "@X0FAccess time per day/session is  :@X0E ", STRING010, " @X0FMins."
  848.         If (U_ExpDate <> "00-00-00") PrintLn "@X0FYour account expiration date is :@X0E ", U_ExpDate, "@X0F"
  849.         If (Psa(7) == 0) Goto LABEL051
  850.         PrintLn "@X0FAccount Credits                 :@X0E ", PCBAccStat(4), "@X0F"
  851.         PrintLn "@X0FPrevious Account Credits        :@X0E ", STRING039, "@X0F"
  852.         PrintLn "@X0FAt 0 Credit Security Level      :@X0E ", Account(17), "@X0F"
  853.         :LABEL051
  854.         Newlines 2
  855.         If (Upper(STRING055) == "YES") Then
  856.             STRING018 = ""
  857.             InputStr "@X0FWould you like to download a receipt for this transaction @X0B(@X0EY@X0F/@X0EN@X0B)@X0F", STRING018, 14, 1, "yYnN", 256 + 16384
  858.             If (STRING018 == YesChar()) Then
  859.                 FCreate 1, STRING059, 1, 3
  860.                 FPutLn 1, "TABS-PPE, written by Ray Sulich"
  861.                 FPutLn 1, ""
  862.                 FClose 1
  863.                 Append STRING019 + STRING056, STRING059
  864.                 FAppend 1, STRING059, 1, 3
  865.                 FPutLn 1, ""
  866.                 FPutLn 1, "Receipt created for ", U_Name(), ""
  867.                 FPutLn 1, ""
  868.                 FPutLn 1, "Access level                    : ", CurSec(), ""
  869.                 FPutLn 1, "Access time per day/session is  : ", STRING010, ""
  870.                 If (U_ExpDate == "00-00-00") Then
  871.                     FPutLn 1, "Your account expiration date is : N/A"
  872.                     Goto LABEL052
  873.                 Endif
  874.                 FPutLn 1, "Your account expiration date is : ", U_ExpDate, ""
  875.                 :LABEL052
  876.                 If (Psa(7) == 0) Goto LABEL053
  877.                 FPutLn 1, "Account Credits                 : ", PCBAccStat(4)
  878.                 FPutLn 1, "Previous Account Credits        : ", STRING039
  879.                 FPutLn 1, "AT 0 Credit Security Level      : ", Account(17)
  880.                 FPutLn 1, ""
  881.                 :LABEL053
  882.                 FPutLn 1, "Receipt generated on ", Date(), " for $", STRING042, " at ", STRING052
  883.                 FClose 1
  884.                 Download STRING059
  885.             Endif
  886.         Endif
  887.         If (STRING016 == "NONE") Goto LABEL063
  888.         If (INTEGER003 <= STRING031) Then
  889.             FAppend 2, STRING048, 1, 3
  890.             FPutLn 2, "******* WARNING !!!!!!!!!!!!!!!! *******"
  891.             FPutLn 2, "  Only ", INTEGER003, " $", STRING042, " SIDS remaining ! "
  892.             FClose 2
  893.             FCreate 3, STRING060, 1, 3
  894.             FPutLn 3, ""
  895.             FPutLn 3, "@XON@@X0FTABS PPE would like to inform that there are only"
  896.             FPutLn 3, "@X0C", INTEGER003, " @X0E$ ", STRING042, "@X0F Subscription ID's remaining. Please call the TABS service"
  897.             FPutLn 3, "BBS at@X0B 1-407-722-3406@X0F and download more $", STRING042, " Subscription ID's"
  898.             FPutLn 3, ""
  899.             FClose 3
  900.             Message STRING016, STRING004, "TABS-PPE", "Warning", "R", 0, 0, 0, STRING060
  901.             Delete STRING060
  902.             Goto LABEL054
  903.         Endif
  904.         :LABEL054
  905.         If (STRING064 == "YES") Gosub LABEL058
  906.         If (STRING074 == "YES") Gosub LABEL061
  907.         Goto LABEL016
  908.         :LABEL055
  909.         FAppend 2, STRING048, 1, 3
  910.         Inc STRING033
  911.         FPutLn 2, "   Entered an incorrect REGISTRATION NUMBER!"
  912.         FClose 2
  913.         Cls
  914.         PrintLn ""
  915.         PrintLn "@X0F You entered an @X8Eincorrect @X0FSubscription Number,  Please try again @X8E!@X0F"
  916.         Newlines 2
  917.         If (STRING033 == STRING032) Then
  918.             Goto LABEL062
  919.         Else
  920.             Goto LABEL039
  921.         Endif
  922.         :LABEL056
  923.         FAppend 2, STRING048, 1, 3
  924.         FPutLn 2, "******* TABS PPE returned Errorlevel ", STRING021, " *******"
  925.         FPutLn 2, "  Please check TABS.DOC for a description of the error"
  926.         FClose 2
  927.         Cls
  928.         PrintLn 
  929.         PrintLn " The fuction that you just executed ended in @X0Cerror @X0Fand @X07"
  930.         PrintLn " @X0Fthe program returned Errorlevel @X0C", STRING021, "@X0F please@X07"
  931.         PrintLn "@X0F consult your TABS.DOC file for an explaination of this error !!!@X07"
  932.         Newlines 2
  933.         Wait
  934.         Goto LABEL016
  935.         :LABEL057
  936.         FAppend 2, STRING048, 1, 3
  937.         FPutLn 2, "******* TABS PPE returned Errorlevel ", STRING021, " *******"
  938.         FPutLn 2, "  Please check TABS.DOC for a description of the error"
  939.         FClose 2
  940.         Cls
  941.         PrintLn 
  942.         PrintLn "@X0F The validation process ended in an error !!!"
  943.         PrintLn "@X8C       Please inform your Sysop @X8B!@X8A!@X89!@X8E!@X07"
  944.         Newlines 2
  945.         If (STRING016 == "NONE") Goto LABEL063
  946.         FCreate 1, STRING058, 1, 3
  947.         FPutLn 1, ""
  948.         FPutLn 1, "@XON@@X0FThis is just a message to let you know that:"
  949.         FPutLn 1, ""
  950.         FPutLn 1, "@X0E", U_Name(), "@X0F , attempted to donate to the BBS and TABS PPE exited"
  951.         FPutLn 1, "with@X8C Errorlevel ", STRING021, "@X0F - so their access rights were not"
  952.         FPutLn 1, "changed."
  953.         FPutLn 1, ""
  954.         FClose 1
  955.         Message STRING016, STRING004, "TABS-PPE", "TABS_Problem", "R", 0, 0, 0, STRING058
  956.         Delete STRING058
  957.         Wait
  958.         Goto LABEL063
  959.         :LABEL058
  960.         If (!Exist(STRING019 + STRING068)) FOpen 1, STRING019 + STRING068, 2, 3
  961.         FAppend 1, STRING019 + STRING068, 2, 3
  962.         FPutLn 1, "", U_Name()
  963.         FClose 1
  964.         If (Exist(STRING019 + STRING065)) Delete STRING019 + STRING065
  965.         FCreate 1, STRING019 + STRING065, 2, 3
  966.         FOpen 2, STRING019 + STRING068, 2, 3
  967.         FPutLn 1, "%" + STRING019 + +STRING066
  968.         FPutLn 1, ""
  969.         :LABEL059
  970.         STRING084 = ""
  971.         STRING085 = ""
  972.         STRING007 = ""
  973.         STRING013 = ""
  974.         STRING008 = ""
  975.         FGet 2, STRING007
  976.         Tokenize STRING007
  977.         STRING084 = GetToken()
  978.         STRING084 = Upper(Left(STRING084, 1)) + Lower(Right(STRING084, Len(STRING084) - 1))
  979.         STRING085 = GetToken()
  980.         STRING085 = Upper(Left(STRING085, 1)) + Lower(Right(STRING085, Len(STRING085) - 1))
  981.         STRING007 = STRING084 + " " + STRING085
  982.         STRING084 = ""
  983.         STRING085 = ""
  984.         FGet 2, STRING013
  985.         Tokenize STRING013
  986.         STRING084 = GetToken()
  987.         STRING084 = Upper(Left(STRING084, 1)) + Lower(Right(STRING084, Len(STRING084) - 1))
  988.         STRING085 = GetToken()
  989.         STRING085 = Upper(Left(STRING085, 1)) + Lower(Right(STRING085, Len(STRING085) - 1))
  990.         STRING013 = STRING084 + " " + STRING085
  991.         STRING084 = ""
  992.         STRING085 = ""
  993.         FGet 2, STRING008
  994.         Tokenize STRING008
  995.         STRING084 = GetToken()
  996.         STRING084 = Upper(Left(STRING084, 1)) + Lower(Right(STRING084, Len(STRING084) - 1))
  997.         STRING085 = GetToken()
  998.         STRING085 = Upper(Left(STRING085, 1)) + Lower(Right(STRING085, Len(STRING085) - 1))
  999.         STRING008 = STRING084 + " " + STRING085
  1000.         FPutPad 1, "    " + STRING007, -32
  1001.         FPutPad 1, STRING013, -25
  1002.         FPutPad 1, STRING008, -22
  1003.         FPutLn 1, ""
  1004.         If (Ferr(2)) Goto LABEL060
  1005.         Goto LABEL059
  1006.         :LABEL060
  1007.         FPutLn 1, ""
  1008.         FPutLn 1, "%" + STRING019 + +STRING067
  1009.         FClose 1
  1010.         FClose 2
  1011.         Return
  1012.         :LABEL061
  1013.         TSTRING062(0) = "NAME,C,25,0"
  1014.         TSTRING062(1) = "EXPIRATION,D,8,0"
  1015.         TSTRING062(2) = "SECURITY,N,3,0"
  1016.         TSTRING062(3) = "EXPSEC,N,3,0"
  1017.         TSTRING062(4) = "CREDITBAL,N,12,0"
  1018.         TSTRING062(5) = "ZEROBALLVL,N,3,0"
  1019.         TSTRING062(6) = "ADRINFO0,C,50,0"
  1020.         TSTRING062(7) = "ADRINFO1,C,50,0"
  1021.         TSTRING062(8) = "ADRINFO2,C,25,0"
  1022.         TSTRING062(9) = "ADRINFO3,C,10,0"
  1023.         TSTRING062(10) = "ADRINFO4,N,10,0"
  1024.         TSTRING062(11) = "ADRINFO5,C,15,0"
  1025.         TSTRING062(12) = "VCNUMBER,N,13,0"
  1026.         TSTRING062(13) = "DATNUMBER,N,13,0"
  1027.         TSTRING062(14) = "SIDUSED,N,7,0"
  1028.         TSTRING062(15) = "DATEUSED,D,8,0"
  1029.         TSTRING062(16) = "TIMEUSED,C,5,0"
  1030.         TSTRING062(17) = "NOTES,M,50,0"
  1031.         If (Exist(STRING019 + STRING075)) Then
  1032.             DOpen 5, STRING019 + STRING075, 0
  1033.         Else
  1034.             DCreate 5, STRING019 + STRING075, 0, TSTRING062(BOOLEAN000)
  1035.             DOpen 5, STRING019 + STRING075, 0
  1036.         Endif
  1037.         GetUser
  1038.         DNew 5
  1039.         DPut 5, "NAME", "" + U_Name()
  1040.         001 = U_ExpDate
  1041.         DPut 5, "EXPIRATION", String(001)
  1042.         DPut 5, "SECURITY", "" + U_Sec
  1043.         DPut 5, "EXPSEC", "" + U_ExpSec
  1044.         If (Psa(7) == 1) Then
  1045.             DPut 5, "CREDITBAL", "" + PCBAccStat(4)
  1046.             DPut 5, "ZEROBALLVL", "" + Account(17)
  1047.         Endif
  1048.         If (Psa(3) == 1) Then
  1049.             DPut 5, "ADRINFO0", "" + U_Addr(0)
  1050.             DPut 5, "ADRINFO1", "" + U_Addr(1)
  1051.             DPut 5, "ADRINFO2", "" + U_Addr(2)
  1052.             DPut 5, "ADRINFO3", "" + U_Addr(3)
  1053.             DPut 5, "ADRINFO4", "" + U_Addr(4)
  1054.             DPut 5, "ADRINFO5", "" + U_Addr(5)
  1055.         Endif
  1056.         DPut 5, "VCNUMBER", "" + U_HVPhone
  1057.         DPut 5, "DATNUMBER", "" + U_BDPhone
  1058.         DPut 5, "SIDUSED", "" + STRING022
  1059.         002 = Date()
  1060.         DPut 5, "DATEUSED", String(002)
  1061.         DPut 5, "TIMEUSED", "" + String(Time())
  1062.         DPut 5, "NOTES", ""
  1063.         DAdd 5
  1064.         PutUser
  1065.         DClose 5
  1066.         Return
  1067.         :LABEL062
  1068.         FAppend 2, STRING048, 1, 3
  1069.         FPutLn 2, "         USER FAILED ", STRING033, " times trying to enter SID"
  1070.         FClose 2
  1071.         Cls
  1072.         Newlines 2
  1073.         PrintLn " @X0F You have entered an invalid SID @X0E", STRING033, "@X0F times"
  1074.         PrintLn ""
  1075.         PrintLn "    Please contact your @X0ESysOp @X0Ffor assistance @X8B!@X8A!@X89!@X8E!@X07"
  1076.         Newlines 2
  1077.         If (STRING016 == "NONE") Then
  1078.             Delay 126
  1079.         Else
  1080.             FCreate 1, STRING061, 1, 3
  1081.             FPutLn 1, ""
  1082.             FPutLn 1, "@XON@@X0FThis is just a message to let you know that:"
  1083.             FPutLn 1, ""
  1084.             FPutLn 1, "@X0E", U_Name(), "@X0F , attempted to donate to the BBS and was unable to"
  1085.             FPutLn 1, "@X0Fenter a correct SID within the ", STRING033, " attempts configured."
  1086.             FPutLn 1, ""
  1087.             FClose 1
  1088.             Message STRING016, STRING004, "TABS-PPE", "SID_MISSES", "R", 0, 0, 0, STRING061
  1089.             Delete STRING061
  1090.             Delay 126
  1091.         Endif
  1092.     Endif
  1093.     :LABEL063
  1094.     If (STRING053 == "YES") Then
  1095.         Cls
  1096.         PrintLn "@X0FTABS-PPE @X0Ewritten by:  @X0BRay Sulich "
  1097.         Newlines 4
  1098.         PrintLn "@BEEP@@BEEP@@BEEP@"
  1099.         PrintLn ""
  1100.         PrintLn "@X0C              This Copy of TABS-PPE Version ", STRING037, " is Registered to"
  1101.         PrintLn ""
  1102.         Forward (80 - Len(STRING052)) / 2
  1103.         Print "@X0E", STRING052
  1104.         Newlines 8
  1105.         Delay 45
  1106.     Else
  1107.         Cls
  1108.         PrintLn "@X0FTABS-PPE @X0Ewritten by: @X0BRay Sulich"
  1109.         Newlines 4
  1110.         PrintLn "@BEEP@@BEEP@@BEEP@@BEEP@@BEEP@"
  1111.         Newlines 2
  1112.         PrintLn "@X0C                  Unregistered Copy of TABS-PPE Version ", STRING037
  1113.         Newlines 2
  1114.         PrintLn "@X0E                     Please help your Sysop Register ME !!"
  1115.         Newlines 4
  1116.         PrintLn "@X07 "
  1117.         Delay 126
  1118.     Endif
  1119.     FAppend 2, STRING048, 1, 3
  1120.     FPutLn 2, "---- ", U_Name(), " Exited PPE on ", String(Date()), " at ", String(Time()), " ----"
  1121.     FPutLn 2, ""
  1122.     PutUser
  1123.     If (Exist(STRING058)) Delete STRING058
  1124.     If (Exist(STRING060)) Delete STRING060
  1125.     If (Exist(STRING061)) Delete STRING061
  1126.     FCloseAll
  1127.  
  1128. ;------------------------------------------------------------------------------
  1129. ;
  1130. ; Usage report (before postprocessing)
  1131. ;
  1132. ; ■ Statements used :
  1133. ;
  1134. ;    2       End
  1135. ;    24      Cls
  1136. ;    8       Wait
  1137. ;    204     Goto 
  1138. ;    168     Let 
  1139. ;    8       Print 
  1140. ;    131     PrintLn 
  1141. ;    163     If 
  1142. ;    1       ConfFlag 
  1143. ;    5       DispFile 
  1144. ;    8       FCreate 
  1145. ;    9       FOpen 
  1146. ;    12      FAppend 
  1147. ;    40      FClose 
  1148. ;    49      FGet 
  1149. ;    73      FPutLn 
  1150. ;    3       FPutPad 
  1151. ;    2       GetUser
  1152. ;    6       PutUser
  1153. ;    12      Delete 
  1154. ;    13      InputStr 
  1155. ;    2       Gosub 
  1156. ;    2       Return
  1157. ;    6       Delay 
  1158. ;    7       Inc 
  1159. ;    35      Newlines 
  1160. ;    5       Tokenize 
  1161. ;    15      GetToken 
  1162. ;    4       AnsiPos 
  1163. ;    1       Forward 
  1164. ;    4       Message 
  1165. ;    2       Rename 
  1166. ;    2       Frewind 
  1167. ;    1       Append 
  1168. ;    4       Download 
  1169. ;    1       SearchInit 
  1170. ;    1       SearchFind 
  1171. ;    1       SearchStop
  1172. ;    1       FCloseAll
  1173. ;    1       DCreate 
  1174. ;    2       DOpen 
  1175. ;    1       DClose 
  1176. ;    1       DNew 
  1177. ;    1       DAdd 
  1178. ;    18      DPut 
  1179. ;    4       Account 
  1180. ;
  1181. ;
  1182. ; ■ Functions used :
  1183. ;
  1184. ;    2       +
  1185. ;    3       -
  1186. ;    1       *
  1187. ;    1       /
  1188. ;    4       %
  1189. ;    156     +
  1190. ;    11      -
  1191. ;    105     ==
  1192. ;    15      <>
  1193. ;    8       <
  1194. ;    3       <=
  1195. ;    9       >
  1196. ;    4       >=
  1197. ;    66      !
  1198. ;    3       &&
  1199. ;    1       ||
  1200. ;    26      Len(
  1201. ;    6       Lower()
  1202. ;    23      Upper()
  1203. ;    2       Mid()
  1204. ;    6       Left()
  1205. ;    6       Right()
  1206. ;    12      Ferr()
  1207. ;    1       Chr()
  1208. ;    1       Asc()
  1209. ;    9       Date()
  1210. ;    4       Time()
  1211. ;    12      U_Name()
  1212. ;    2       NoChar()
  1213. ;    3       YesChar()
  1214. ;    15      String()
  1215. ;    1       Mask_File()
  1216. ;    1       PPEPath()
  1217. ;    5       PcbNode()
  1218. ;    14      CurSec()
  1219. ;    8       GetToken()
  1220. ;    10      Exist()
  1221. ;    3       GetX()
  1222. ;    3       GetY()
  1223. ;    9       Psa()
  1224. ;    16      TokCount()
  1225. ;    10      PCBAccStat()
  1226. ;    5       Account()
  1227. ;
  1228. ;------------------------------------------------------------------------------
  1229. ;
  1230. ; Analysis flags : FW
  1231. ;
  1232. ; F - Change conference flags status ■ 2
  1233. ;     This may be normal for a SELECT replacement but it may also be
  1234. ;     a way to get access to conferences a user is not allowed to.
  1235. ;     ■ Search for : CONFFLAG, CONFUNFLAG
  1236. ;
  1237. ; W - Write user ■ 5
  1238. ;     Program writes a user record. Although this may be normal for a
  1239. ;     User Editor, it may also be a way to modify an account level.
  1240. ;     ■ Search for : PUTUSER
  1241. ;
  1242. ;------------------------------------------------------------------------------
  1243. ;
  1244. ; Postprocessing report
  1245. ;
  1246. ;    1       For/Next
  1247. ;    1       While/EndWhile
  1248. ;    56      If/Then or If/Then/Else
  1249. ;    1       Select Case
  1250. ;
  1251. ;------------------------------------------------------------------------------
  1252. ;                 AEGiS Corp - Break the routines, code against the machines!
  1253. ;------------------------------------------------------------------------------
  1254.